Embodiments of the present invention relate generally to methods and systems for providing summarizations of data and transactions related to one or more applications and more particularly to methods and systems for providing summarizations of data and transactions based on the status of the summarization and the data and transactions being summarized.
A common business need is to summarize data that exists in a system. This can be accomplished using a summarization program. A summarization program can involve any number of functional data transformations that bring data from an existing state in a system to a state that is ready or closer to being ready to be viewed by an end user, (e.g., in a report). A report may be any entity that displays summarized data to an end user, for example through a reporting dashboard. As the volume of data being summarized increases or the elapsed time to summarize the data increases, it can make sense to break up the functional data transformations into a number of steps. This can also aid in recoverability. However, performing the functional data transformations in a number steps can add complexity to questions asked about the state of such data, since the data can be committed in the database in a variety of states of partial functional transformation.
It sometimes becomes necessary for the summarization program to extract data that may or may not be modified during or after extraction. Furthermore, the type of modifications that can happen on such data may depend on the functional transformations within the summarization program, introducing circular dependencies that while functionally sound, can add complexity to the summarization program. For this reason, it can be desirable to be able to exactly answer a question about source system or summary data within the context of whether the summarization program has read, created and/or modified that data. Another point of integration within the summarization program can exist between technologies. In satisfying the requirements of the functional data transformations it is possible that the transformations span different technologies, for example between a relational database (RDBMS) and a multidimensional database (MDBMS). Inherent to spanning different technologies is that the systems can be fully available at different times. Depending on how the technologies are used, optimizations can be made so to minimize the impact of one of the technologies becoming unavailable.
Previous solutions for handling such summarizations included placing data that is prepared to be summarized into a log so that it becomes static and can be extracted and summarized at any time. However, if the summarization program is closely integrated with the source system, it may become necessary to extract data that is actively a part of the transaction system. Additionally, when a specific flow in the source system depends on the status of summary data, it can be impractical to predict when summarization will be run (potentially changing that status). These previous solutions do not provide a way to exactly determine the state of the summarization data.
Regarding integration between an RDBMS and an MDBMS, previous approaches that pull together different technologies can be at the mercy of those technologies such that if one goes down, everything becomes unavailable. While there is much in the art regarding high availability in a multi-technology system, a program containing functional data transformations such as a summarization program may not be able to take advantage of such methods in the art without taking into consideration its particular data transformations, and as such may therefore still be subject to the problem of technology unavailability. It is also desirable to ensure that when, if ever, the MDBMS becomes available, it is brought in sync with the summary data with less user intervention. Previously, the summarization program would just be unavailable while the MDBMS was unavailable. Similarly, if the data is rejected from the MDBMS for some reason other than technology availability, it may be the case that the summarization program cannot continue past that point, creating a roadblock for other instances of summarization trying to summarize some of the same or similar data. Hence, there is a need for improved methods and systems for providing summarizations of data and transactions related to one or more applications.